#include <iostream>
using namespace std;
int N, K;
constexpr int MAXN = 100;
int T[MAXN], X[MAXN], Y[MAXN];

void init(int);
bool same(int, int);
void unite(int, int);

void solve() {
    // 初始化并查集
    // 元素x, x + N, x + 2 * N表示x-A, x-B, x-C
    init(N * 3);

    int ans = 0;
    for (int i = 0; i < K; i++) {
        int t = T[i];
        int x = X[i] - 1, y = Y[i] - 1;

        if (x < 0 || N <= x || y < 0 || N <= y) {
            ans++;
            continue;
        }

        if (t == 1) {
            if (same(x, y + N) || same(x, y + 2 * N)) ans++;
            else {
                unite(x, y);
                unite(x + N, y + N);
                unite(x + 2 * N, y + 2 * N);
            }
        } 
        else {
            if (same(x, y) || same(x, y + 2 * N)) ans++;
            else {
                unite(x, y + N);
                unite(x + N, y + 2 * N);
                unite(x + 2 * N, y);
            }
        }
    }
}